#!/bin/bash

# 修复分页相关的编译错误

echo "开始修复分页编译错误..."

# 查找所有包含PageHelper或pageResult错误的Java文件
find fuint-application/src/main/java -name "*.java" -type f -exec grep -l "PageHelper\|pageResult" {} \; > pagination_files.txt

# 对每个文件进行修复
while IFS= read -r file; do
    echo "修复文件: $file"
    
    # 替换剩余的PageHelper引用
    sed -i 's/PageHelper\.startPage/\/\/ 需要手动处理分页逻辑 \/\/ PageHelper.startPage/g' "$file"
    
    # 替换pageResult引用为page
    sed -i 's/pageResult\.getTotal()/page.getTotal()/g' "$file"
    sed -i 's/pageResult\.getPages()/page.getPages()/g' "$file"
    sed -i 's/pageResult\.getRecords()/page.getRecords()/g' "$file"
    
    # 添加必要的变量声明（如果缺失）
    if grep -q "page\.getTotal()" "$file" && ! grep -q "Page<.*> page = " "$file"; then
        # 在方法开始处添加page变量声明的注释
        sed -i '/public PaginationResponse<.*> /a\        \/\/ TODO: 需要添加 Page<EntityType> page = PaginationHelper.createPage(currentPage, pageSize);' "$file"
        sed -i '/public PaginationResponse<.*> /a\        \/\/ TODO: 然后执行 Page<EntityType> pageResult = mapper.selectPage(page, lambdaQueryWrapper);' "$file"
    fi
    
done < pagination_files.txt

# 清理临时文件
rm pagination_files.txt

echo "修复完成！请手动检查TODO注释并完成分页逻辑。"
